//
//  WeSignAPI.h
//  Pods
//
//  Created by apple on 16/7/12.
//
//

#import <Foundation/Foundation.h>

@interface WeSignAPI : NSObject
typedef NS_ENUM(NSUInteger, enumLoginType) {
    kLoginTypePhone = 0,
    kLoginTypeEmail,
    kLoginTypeThirdParty
};


typedef NS_ENUM(NSUInteger, enumLoginResultType) {
    kLoginResultTypeAllowLogin = 0,
    kLoginResultTypeRefusedLogin,
    kLoginResultTypeChooseThirdLogin
};


#pragma mark - 用户资源管理
/**
 *  @author wutao, 16-07-12 20:07:28
 *
 *  @brief 登录用户
 *
 *  @param user  用户名
 *  @param pwd   密码
 *  @param token 预留参数，设置为nil即可
 *
 *  @return 返回用户ID
 */
- (NSString *)loginWithUser:(NSString *)user
                        password:(NSString *)pwd
                       withToken:(NSString *)token;

/**
 *  @author wutao, 16-07-12 20:07:19
 *
 *  @brief 文档转换接口,将Office文档转换成PDF文件
 *
 *  @param userid  用户ID
 *  @param fileURL 文档URL地址
 *
 *  @return 返回转换成功后的文档数据
 */
- (NSData *)Office2PDFWithUserid:(NSString *)userid fileURL:(NSURL *)fileURL;

/**
 *  @author wutao, 16-07-12 20:07:19
 *
 *  @brief 文档转换接口,将Office文档转换成PDF文件
 *
 *  @param userid  用户ID
 *  @param fileData 文件Bytes数据
 *  @param fileName 文件名称（需要加上后缀名表示文件类型）
 *
 *  @return 返回转换成功后的文档数据
 */
- (NSData *)Office2PDFWithUserid:(NSString *)userid withData:(NSData *)fileData withFileName:(NSString *)filename;


/**
 *  @author wutao, 16-07-12 20:07:26
 *
 *  @brief 无证书签名
 *
 *  @param userid 用户ID
 *  @param info   签名信息字典，按照以下信息构造
 *  Key:ulX    Value说明:签名左上角坐标X
 *  Key:ulY   Value说明:签名左上角坐标Y
 *  Key:lrX    Value说明:签名右下角坐标X
 *  Key:lrY  Value说明:签名右下角坐标Y
 *  Key:page    Value说明:签名所在的页面(0开始编号)
 *  Key:pageZoom  Value说明:签名页面缩放比例(PDF原始大小为1)
 *  Key:sealImgBytes   Value说明:签名图像的二进制数据
 *  Key:pdfBytes    Value说明:需要进行签名的文件的二进制数据
 *  @return 签名成功后的数据
 */

- (NSData *)noCertSignDocWithUserid:(NSString *)userid
                           signInfo:(NSDictionary *)info;

/**
 *  @author wutao, 16-07-12 20:07:26
 *
 *  @brief 使用证书签名
 *
 *  @param userid 用户ID
 *  @param info   签名信息字典，按照以下信息构造
 *  Key:ulX    Value说明:签名左上角坐标X
 *  Key:ulY   Value说明:签名左上角坐标Y
 *  Key:lrX    Value说明:签名右下角坐标X
 *  Key:lrY  Value说明:签名右下角坐标Y
 *  Key:page    Value说明:签名所在的页面(0开始编号)
 *  Key:pageZoom  Value说明:签名页面缩放比例(PDF原始大小为1)
 *  Key:sealImgBytes   Value说明:签名图像的二进制数据
 *  Key:pdfBytes    Value说明:需要进行签名的文件的二进制数据
 *  @return 签名成功后的数据
 */

- (NSData *)hasCertSignDocWithUserid:(NSString *)userid
                           signInfo:(NSDictionary *)info;

/**
 *  @author wutao, 16-07-13 16:07:33
 *
 *  @brief 获取用户证书ID列表
 *
 *  @param userid 用户ID
 *
 *  @return 返回用户证书ID列表
 */

- (NSArray *)listCertificatesWithUserid:(NSString *)userid;
@end
